package dao;

import java.io.Serializable;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
import javax.persistence.Query;

import seguranca.Autenticador;

import modelo.DonoProjeto;
import modelo.DonoProjeto;
import modelo.Usuario;


public class DonoProjetoDAO implements Autenticador,Serializable {
    private final EntityManager manager;
    private final DAO<DonoProjeto,Long> dao;
    
    public DonoProjetoDAO(EntityManager manager) {
        this.manager = manager;
        dao = new DAO(manager,DonoProjeto.class);
    }
    
    public List<DonoProjeto> listar(){
        return dao.listar();
    }
    
    public void inserir(DonoProjeto donoProjeto) {
        dao.inserir(donoProjeto);
    }
    
    public void atualizar(DonoProjeto donoProjeto) {
        dao.atualizar(donoProjeto);
    }
    
    public DonoProjeto consultar(Long id) {
        return dao.consultar(id);
    }
    
    
    @SuppressWarnings("unchecked")
	public Usuario efetuarLogin(Usuario usuario) {
    	try {
    		String sql = "select usuario from DonoProjeto usuario  where (usuario.login = :plogin and usuario.senha = :psenha)";
        	Query consulta = manager.createQuery(sql);
        	
        	consulta.setParameter("plogin", usuario.getLogin());
        	consulta.setParameter("psenha", usuario.getSenha());
        	
        	Usuario user = (Usuario) consulta.getSingleResult();
        	   	
        	return user;
		} catch (NoResultException ex) {
			return null;
		}
    			
    }
}
    
